#include<stdio.h>
#include<stdlib.h>
#include<time.h>
using namespace std;


int main(int argc, char *argv[]) {

  if(argc < 5){
    printf("\nEspecifique todos os parâmentros:\n\n");
    printf("programa nDias nPratos orcamento ehPossivel\n");
    printf("nDias [1, 10000]: número inteiro de dias\n");
    printf("nPratos [1, 10000]: número inteiro de pratos\n");
    printf("orcamento [1, 10000]: valor inteiro do orçamento - DEVE SER MAIOR OU IGUAL DO QUE nDias\n");
    printf("ehPossivel(s ou n): se a instância tem resolução (s)im ou (n)ão\n\n");
    return -1;
  }

  int nDias = atoi(argv[1]);
  int nPratos = atoi(argv[2]);
  int orcamento = atoi(argv[3]);
  char ehPossivel  = argv[4][0];

  if(nDias <=0 || nDias >10000){
    printf("\nnDias deve ser estar no intervalo [1,10000]\n\n");
    return -1;
  }

  if(nPratos <=0 || nPratos >10000){
    printf("\nnPratos deve ser estar no intervalo [1,10000]\n\n");
    return -1;
  }

  if(orcamento <=0 || orcamento >10000){
    printf("\norcamento deve ser estar no intervalo [1,10000]\n\n");
    return -1;
  }

  if(orcamento < nDias){
    printf("\norcamento deve ser maior ou igual a nDias\n\n");
    return -1;
  }

  if(ehPossivel != 's' && ehPossivel != 'n'){
    printf("\nehPossivel deve ser 's' ou 'n'\n\n");
    return -1;
  }

  printf("%d %d %d\n", nDias, nPratos, orcamento);

  srand ( time(NULL) );


  for(int i=0; i<nPratos; i++){
    int custo;
    int lucro;
    if(ehPossivel == 's'){
      //Assume uma distribuição de 30% dos elementos com custo abaixo de orcamento/nDias para
      //garantir que o problema terá uma solução
      if( (rand() % 10) < 3){
	int orcamentoDia = orcamento/nDias;    
	custo = (int)(rand() % orcamentoDia) + 1;
      }else{
	custo = (rand() % (int)(orcamento*1.2)) + 1;
      }
    }else{
      //Assum sempre um custo acima de orcamento/nDias, garantindo a inviabilidade da solução
      int orcamentoDia = orcamento/nDias;    
      custo = (int)(rand() % orcamento) + orcamentoDia;
    }
    lucro = (rand() % custo);
    printf("%d %d\n", custo, lucro);
  }



}
